home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1994-09-22 | 4.6 KB | 96 lines |
- DEFINITION MODULE DruckTreiber;
-
- (************************************************************************
- * Druckertreiber-Modul für LPR-Modula2 *
- * *
- * V2.0, (c) 9/1989 by Uwe Ischebeck, Ringstr.31, 6900 Heidelberg *
- * *
- * Die Druckertreiber verwendet eine für 1stWordPlus vorgesehene *
- * Druckeranpassung. Außerdem werden die in WordPlus nicht bekannten *
- * Funktionen 34hex bis 40hex unterstützt. Näheres siehe DRUCKTRE.DOC. *
- ************************************************************************)
-
- CONST MaxFunc = 040H;
- (* FehlerNummern *)
- EOK = 0;
- EFormat = -71; (* HEX-Datei Formatfehler *)
- EBuffOv = -79; (* S.a-Puffer übergelaufen *)
- (* es können auch andere Fehler -70 bis -79 auftreten. Dann *
- * bitte mit ausführlicher Beschreibung an mich schicken. *)
-
- TYPE String = ARRAY[0..79] OF CHAR;
- StringPointer = POINTER TO String;
- TDruckSteuer = RECORD
- d : String;
- filehandle : INTEGER;
- geladen,LQ : BOOLEAN;
- ersatz : CHAR;
- n : StringPointer;
- par : ARRAY[0..5] OF CHAR;
- c : ARRAY[0..MaxFunc] OF INTEGER;
- z : ARRAY[0..255] OF INTEGER;
- a : ARRAY[0..2047] OF CHAR
- END;
-
- VAR S : TDruckSteuer;
- CfgError : INTEGER; (* Fehlernummer, #0 wenn Fehler *)
- (* Fehlernummern -1..-67 kommen vom GEMDOS *)
- (* -70..-79 vom Druckertreiber*)
-
- PROCEDURE ConfigPrinter( GemdosPrnOutHandle : INTEGER;
- name : ARRAY OF CHAR; ersatz : CHAR );
- (******************************************************************
- * Liest die CFG.Datei "name" im GST-Format und weist der *
- * DRUCKAUSGABE den Kanal GemdosPrnOutHandle zu. *
- * Wenn die Ausgabe in eine Datei erfolgt, muß diese vom aufru- *
- * fenden Modul geöffnet und auch wieder geschlossen werden. *
- * Standartausgabekanäle: 1 - Stdout (Monitor) *
- * 2 - serieller Port *
- * 3 - paralleler Port *
- * Ist GemdosPrnOutHandle<0 wird als Standartwert 3 angenommen. *
- * In "ersatz" kann ein Ersatzzeichen angegeben werden, das für *
- * ein nicht verfügbares Zeichen gedruckt werden soll. *
- ******************************************************************)
-
- PROCEDURE PrintHandle( handle : INTEGER );
- (* Mit dieser Prozedur kann die Druckausgabe in eine andere Datei *
- * als bei ConfigPrinter angegeben umgeleitet werden. *)
-
- PROCEDURE Steuer( nr : INTEGER; VAR wert : INTEGER );
- (* Schickt den Steuercode "nr" an den Drucker. Wenn für die *
- * Funktion ein Parameter erforderlich ist, sollte er in "wert" stehen.*
- * In "wert" wird -1 zurückgegeben, wenn der Parameter verwendet wurde.*)
-
- PROCEDURE PrintSteuer( nr, wert : INTEGER );
- (* Aufruf von Steuer. Nur eingebaut, damit im Prozeduraufruf konstante *
- * Parameter verwendet werden können. *)
-
- PROCEDURE SetLQ( lq : BOOLEAN );
- (* Setzt/löscht das LQ-Flag für die Druckausgabe *)
-
- PROCEDURE PrintLn; (* Druckt ein Zeilenende *)
-
- PROCEDURE PrintFormFeed; (* Sendet den Code für Seitenende *)
-
- PROCEDURE PrintChar(c:CHAR);
- (* wandelt das Zeichen "c" gemäß der Druckeranpassung um und *
- * schickt den Code an den Drucker *)
-
- PROCEDURE PrintString( ein : ARRAY OF CHAR );
- (* wandelt die Zeichenkette "ein" gemäß der Druckeranpassung *
- * um und schickt den Code an den Drucker *)
-
- PROCEDURE PrintString4( s0, s1, s2, s3 : INTEGER; str : ARRAY OF CHAR );
- (* Führt die Steuerfunktionen s0 bis s3 aus und ruft dann *
- * PrintString auf. Ist s0 .. s2 eine Funktion mit Parameter, *
- * wird der nachfolgende Parameter mit übergeben. Ist s3 eine *
- * Funktion mit Parameter, wird sie nicht ausgeführt. *)
-
- PROCEDURE PrintDirektString( str : ARRAY OF CHAR );
- (* Schickt die Zeichenkette "ein" ohne Umwandlung an den Drucker *)
-
- PROCEDURE PrintDirekt( c : CHAR );
- (* Schickt das Zeichen "c" ohne Umwandlung an den Drucker *)
-
- END DruckTreiber.
-